package cn.marinda.resturants.service;

import cn.marinda.resturants.entity.Salarys;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

public interface SalaryService extends IService<Salarys> {

    /** 查询所有数据
     * @return 工资列表
     */
    List<Salarys> queryList();



    /**
     * 选择通过id
     *
     * @param uid uid
     * @return {@link Salarys}
     */
    Salarys selectById(String uid);

    /** 添加工资列
     *
     * @param salarys 工资
     * @return salarys
     */
    boolean addSalarys(Salarys salarys);

    /** 删除工资列
     *
     * @param uid uid
     * @return 结果
     */
    boolean deleteSalarys(String uid);

    /** 查询一个员工的基本工资
     * @param uid 员工
     * @return 基本工资数据
     */
    BigDecimal selectBasic(String uid);

    /** 查询一个员工的工时
     *
     * @param uid 员工号
     * @return 工时
     */
    Integer selectWorkDuration(String uid);


    /** 查询一个员工的水电费
     *
     * @param uid 员工号
     * @return 水电费
     */
    BigDecimal selectSundry(String uid);


    /** 查询一个员工的全勤奖
     *
     * @param uid uid
     * @return 全勤奖
     */
    BigDecimal selectFillTime(String uid);


    /** 查询一盒员工的请假次数
     *
     * @param uid uid
     * @return 请假次数
     */
    Integer selectLeave(String uid);


    /** 查询应发工资
     *
     * @param uid uid
     * @return 应发工资
     */
    BigDecimal selectPayble(String uid);


    /** 查询实发工资
     *
     * @param uid uid
     * @return 应发工资
     */
    BigDecimal selectNumber(String uid);

    /** 乐观锁修改
     *
     * @param salarys 工资
     * @return 结果
     */
    boolean updateSalarys(Salarys salarys);


    /** 分页查询
     *
     * @param page 分页
     * @return 分页
     */
    IPage<Salarys> selectPages(Pages<?> page);
}
